import { createStore } from 'vuex'


export default createStore({
	state:{
		 count: 0
	},
	mutations:{
	  increment (state) {
	    state.count++
	  },
	  decrement (state) {
	    state.count--
	  },
	  SET_COUNT(state,count){
		  state.count = count;
	  }
	},
	actions:{
		setCount({commit},count){
			commit('SET_COUNT',count)
		},
	  increment: ({ commit }) => commit('increment'),
	  decrement: ({ commit }) => commit('decrement'),
	  incrementIfOdd ({ commit, state }) {
	    if ((state.count + 1) % 2 === 0) {
	      commit('increment')
	    }
	  },
	  incrementAsync ({ commit }) {
	    return new Promise((resolve, reject) => {
	      setTimeout(() => {
	        commit('increment')
	        resolve()
	      }, 1000)
	    })
	  }
	},
	getters: {
		count:state=>state.count,
	  evenOrOdd: state => state.count % 2 === 0 ? 'even' : 'odd'
	}
})


// // debugger;
//  const store = createStore({
// 	// state(){
// 	//   return {
// 	// 	  count:0
// 	//   }
// 	// },
// 	state:{
// 		count:0
// 	},
// 	mutations:{
// 	  SET_COUNT(state,count) {
// 		state.count = count
// 		// debugger
// 	  }
// 	},
// 	actions:{
// 	  setCount({ commit }, count){
// 		  commit('SET_COUNT',count)
// 		  // debugger;
// 	  }
// 	},
// 	getters:{
// 	  count: state=>state.count
// 	}
// });

// export default store;

// export function useStore() {
//   return store// as Store
// }